/*
 * @Author: LuZeng
 * @Date: 2022-08-01 18:47:54
 * @LastEditTime: 2022-08-26 18:27:09
 * @LastEditors: LuZeng
 * @Description: 小白本白，写的不好多多包涵！！！
 * @FilePath: \jsd:\rjiananzhuang\WEB\WEB workspace\实训三\练习\ThreeNode\app\app\service\logon.js
 * 别乱动！
 */
let { Service } = require("egg");

let Response = require("../utils/Response");

class UserLogon extends Service {
  async logon({ username, password }) {
    let { mysql } = this.app;

    // 查询用户信息（根据用户名）
    let accountInfo = await mysql.get("logon", { username });

    // 不为空时，如果密码相等就返回用户信息，否则密码错误
    if (accountInfo) {
      if (accountInfo.password == password) {
        return accountInfo;
      } else {
        throw new Response("密码错误");
      }
    } else {
      throw new Response("该用户不存在");
    }
  }

  // 注册新用户
  async register(userInfo) {
    let { mysql } = this.app;
    // 先检出用没有这个用户名，有的话停止注册，并返回已经存在信息
    // 如果不存在，就插入信息，并更新购物车等一些列数据
    const res = await mysql.get("logon", {
      username: userInfo.username,
    });
    if (res == null) {
      let arr = "[]";
      // 插入
      const result = await this.app.mysql.insert("logon", {
        username: userInfo.username,
        password: userInfo.password,
        cart: arr,
        shoppingcart: arr,
        completed: arr,
        receiving: arr,
      });
      // 判断插入成功
      return result.affectedRows;
    } else {
      // 失败返回-1
      return -1;
    }
  }
}
module.exports = UserLogon;
